-
Notifications
You must be signed in to change notification settings - Fork 1
Add bracket predictions #25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
e7d12f4 to
cb4ee69
Compare
- Add /test route with bracket prediction functionality - Add predictions API endpoints and usePredictions hook - Redesign login card with 1991 retro paper-cut aesthetic - Fix bracket finalist node centering Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Restore view-only Bracket.tsx from main for index page - Create InteractiveBracket.tsx with picking functionality - Update test.tsx to use InteractiveBracket - Use single yellow ring color instead of left/right colors - Make placeholders gray with grayscale filter - Players only grayscale when eliminated Co-Authored-By: Claude Opus 4.5 <[email protected]>
- API now deletes existing predictions before inserting new ones - Reset + save now actually clears predictions from database - Match FIT_VIEW_PADDING between Bracket and InteractiveBracket Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Merge InteractiveBracket.tsx into Bracket.tsx with isInteractive prop - Non-interactive mode (homepage): all TBD slots, yellow/red rings, 50px sizing, no grayscale - Interactive mode (/test): predictions-based, gray rings for TBD, larger finalist/championship sizing - Delete InteractiveBracket.tsx (logic merged into Bracket.tsx) - Update test.tsx to use Bracket with isInteractive prop Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Redirect to /test after GitHub OAuth login - Auto-scroll to #bracket section after login (once per session) - Clear scroll flag on logout - Add trustedOrigins for CSRF protection - Add GitHub OAuth setup docs to CLAUDE.md - Update players: add Cassidy Williams, Josh Comeau, Kyle Cook Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add DSEG7Classic font for seven-segment LED display - Create Scoreboard component with individual digit boxes - Add inactive segment "8" outline behind active digits - Include corner rivets and CRT scanline overlay - Add responsive styles for mobile breakpoints - Style urgent state with glow animation Co-Authored-By: Claude Opus 4.5 <[email protected]>
Simple 3-column layout (Rank, Player, Total) styled like a classic arcade high score table with LED digit display. Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add userScore table for tracking bracket predictions - Add scoring utility for calculating points - Render Leaderboard on test page Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add retro scoreboard countdown component - Add seed script for testing leaderboard - Update LoginSection styling Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add shareable bracket routes and API - Add OG image generation for user brackets - Update leaderboard and scoreboard components - Add share bracket styles - Update DB schema and migrations Co-Authored-By: Claude Opus 4.5 <[email protected]>
Chained .where() calls only apply the last condition. Combined them using and() to correctly fetch the user's final game prediction. Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Style React Flow controls with dark theme (black bg, yellow accents) - Stack finalists and championship vertically with centered text - Add progressive photo sizing: finalists 65px, championship 80px - Center championship node between finalists - Add mobile responsive styles Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add DSEG7Classic font for seven-segment LED display - Create Scoreboard component with individual digit boxes - Add inactive segment "8" outline behind active digits - Include corner rivets and CRT scanline overlay - Add responsive styles for mobile breakpoints - Style urgent state with glow animation Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Update finalist selector to match node IDs (final-p1, final-p2) - Set base photo size to 50px to match bracket-styling Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Consolidate 4 migrations into single fresh migration - Remove debug console.log/error from Leaderboard component - Delete unused SimpleBracket component - Remove outdated TODO comment from Header (logo already SVG) Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Disable noImportantStyles globally (needed for React Flow overrides) - Add biome-ignore for array index key in LeaderboardScore (safe for static digits) Co-Authored-By: Claude Opus 4.5 <[email protected]>
Bracket styling: - Players start colorful, eliminated players become grayscale - Smooth transitions for filter and hover effects (0.2-0.3s) - Coordinated hover animations on pickable players Prediction feedback: - Yellow checkmark: pending pick (no result yet) - Green checkmark: correct prediction - Red X: incorrect prediction OG image: - Remove dev mode redirect, works locally now - Remove test mode, use real DB data only Co-Authored-By: Claude Opus 4.5 <[email protected]>
Increase avatar sizes for better visibility in social shares: - R1: 40px → 55px, QF: 48px → 65px, SF: 56px → 80px - Finals: 64px → 90px, Champion: 120px → 130px Expand R1 Y range from 182-497px to 50-582px to use full canvas height, allowing avatars to extend into logo/footer areas for maximum visual impact. Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Remove Ticket component from share page layout - Remove champion pick display from header - Use TanStack Router's notFound() for missing/unlocked brackets - Move CTA button into header card - Clean up unused CSS styles Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Change [data-id*="final-p"] to [data-id*="finalist"] - Matches left-finalist and right-finalist node IDs Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add .player-node__badge base styles - Add --pending, --correct, --incorrect variants - Use CSS variables for colors Co-Authored-By: Claude Opus 4.5 <[email protected]>
4f85a42 to
f83058b
Compare
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
mad-css | f83058b | Commit Preview URL Branch Preview URL |
Jan 26 2026, 10:03 PM |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Add complete bracket prediction system with leaderboard, scoring, and social sharing.
Features
Interactive Bracket Predictions (
/test)Leaderboard (homepage)
Public Bracket Sharing (
/bracket/[username])Scoring System
Countdown Timer
Database Schema
New tables added:
user_prediction- Stores each user's bracket picksuser_bracket_status- Tracks if bracket is lockeduser_score- Per-round and total scorestournament_result- Official match outcomes (for scoring)Setup
Database
# Fresh setup (creates single consolidated migration) pnpm db:setupEnvironment Variables
Ensure
.dev.varshas:Testing
pnpm devhttp://localhost:3000- see countdown and leaderboard/testto make predictions/bracket/[your-github-username]to see public view🤖 Generated with Claude Code